package com.ruoyi.order.domain;
import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import lombok.EqualsAndHashCode;
import lombok.Data;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
/**
 * 订单对象 t_order_info
 * 
 * @author DEREK
 * @date 2023-05-22
 */
@Data
@EqualsAndHashCode(callSuper=false)
@TableName("t_order_info")
public class OrderInfo
{

    /** 主键ID */
	@TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /** 订单编号 */
    @Excel(name = "订单编号")
    private String orderNo;

    /** 订单类型
		1：充值VIP
		6：充值玩币 */
    @Excel(name = "订单类型1：充值VIP6：充值玩币")
    private String orderType;

    /** 关联ID(订单类型对应主体ID) */
    @Excel(name = "关联ID(订单类型对应主体ID)")
    private Long relatedId;

    /** 订单金额 */
    @Excel(name = "订单金额")
    private BigDecimal orderAmount;

    /** 实际金额（针对提现扣除费率后的金额） */
    @Excel(name = "实际金额", readConverterExp = "针=对提现扣除费率后的金额")
    private BigDecimal actualAmount;

    /** 支付用户ID */
    @Excel(name = "支付用户ID")
    private Long payUserId;

    /** 资金类型
		1:微信
		2:支付宝
		3:玩币支付
		4:苹果支付 */
    @Excel(name = "资金类型1:微信2:支付宝3:玩币支付4:苹果支付")
    private String payType;

    /** 订单创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "订单创建时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm")
    private Date orderCreateTime;

    /** 订单更新时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "订单更新时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date orderUpdateTime;

    /** 微信交易号 */
    @Excel(name = "微信交易号")
    private String tradeNo;

    /** 订单状态(0:未支付1:已支付 2:已完成,3:已退款) */
    @Excel(name = "订单状态(0:未支付1:已支付 2:已完成,3:已退款)")
    private String orderStatus;

    /** 对方ID 用户分润 */
    @Excel(name = "对方ID 用户分润")
    private Long toUserId;

    /** 扩展字段 */
    @Excel(name = "扩展字段")
    private String extend;

    private Date createTime;
    private Date updateTime;
    private String remark;
    private Date payExpireTime; // 支付过期时间
    private Long couponId; // 优惠券ID
    
    @TableField(exist = false)
    private String nickName;
    private Long manageId;
	private String manageName;
	@TableField(exist = false)
	private Integer manageType = 0;
	
	@TableField(exist = false)
	private String begTime;
	@TableField(exist = false)
	private String endTime;
}
